home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
t_os
/
algernon
/
mcedit.src
< prev
next >
Wrap
Text File
|
1993-07-08
|
16KB
|
396 lines
100 '-------------------- VIL組み込み開始 --------------------
110 CLEAR ,,512,1024*700,0,0 'メモリ領域設定
120 SCREEN 0:CLS
130 VIL_W0=0:VIL_W1=0:VIL_W2=0:VIL_W3=0:VIL_W4=0 '汎用ワーク変数
140 VIL_W5=0:VIL_W6=0:VIL_W7=0:VIL_W8=0:VIL_W9=0
150 VIL_W0$="":VIL_W1$="":VIL_W2$="":VIL_W3$=""
160 VIL_I=0:VIL_J=0:VIL_K=0 'ループ変数
170 VIL_A$="" '文字列汎用
180 VIL_F$="" 'ファイル名汎用
190 VIL_C=15:VIL_CB=0 '描画色・背景色(0..15)
200 VIL_X=0:VIL_Y=0:VIL_W=0:VIL_Z=0 '左上隅・右下隅座標
210 VIL_XL=0:VIL_YL=0:VIL_XN=0:VIL_YN=0 'X・Y軸方向長さ・個数
220 VIL_P=0 'パレット番号
225 VIL_KN=0 '入力番号
226 VIL_K$="":VIL_KY=0 '入力キーとアスキーコード
227 VIL_MX=0:VIL_MY=0:VIL_MW=0:VIL_MZ=0 'マウス位置
230 '
240 VIL_E=0 'エラー番号
250 VIL_DIR$="" 'VILディレクトリ
260 VIL_FMTDIR$="" 'FMTITLEディレクトリ
270 VIL_VER=100 'VIL VER1.00
280 '
290 *VIL_CNF '設定ファイル"CONFIG.VIL"読込
300 PRINT"Searching "+CHR$(34)+"CONFIG.VIL"+CHR$(34)
310 PRINT"Searching current directory"
320 GOSUB *VIL_ERR_ON:VIL_E=0
330 OPEN "I",#1,"CONFIG.VIL" 'カレントディレクトリを探す
340 IF VIL_E=63 THEN
350 PRINT"Searching root directory"
360 VIL_E=0
370 OPEN "I",#1,"\CONFIG.VIL" 'ルートディレクトリを探す
380 IF VIL_E=63 THEN '見つからなければ設定中止
390 PRINT"WARNING:"+CHR$(34)+"CONFIG.VIL"+CHR$(34)+" not found"
400 GOTO *VIL_L_BGN
410 ENDIF
420 ENDIF
430 PRINT"Reading "+CHR$(34)+"CONFIG.VIL"+CHR$(34)
440 WHILE EOF(1)=0
450 LINE INPUT #1,VIL_W0$
460 IF LEFT$(VIL_W0$,1)<>"'" THEN 'コメント行スキップ
470 IF INSTR(VIL_W0$,"VILDIR") THEN 'VILディレクトリ設定
480 VIL_DIR$=MID$(VIL_W0$,INSTR(VIL_W0$,"=")+1)
490 ELSE IF INSTR(VIL_W0$,"FMTITLEDIR") THEN 'FMTITLEディレクトリ設定
500 VIL_FMTDIR$=MID$(VIL_W0$,INSTR(VIL_W0$,"=")+1)
510 ENDIF
520 ENDIF
530 WEND
540 CLOSE #1
550 '
560 *VIL_L_BGN ' VIL リンク開始
570 ON ERROR GOTO 0
580 *VIL_L_BAS: CHAIN MERGE VIL_DIR$+"VIL_BAS.BAS",*VIL_L_VWM,ALL,DELETE *VIL_L_BAS
590 *VIL_L_VWM: CHAIN MERGE VIL_DIR$+"VIL_VWM.BAS",*VIL_L_UTY,ALL,DELETE *VIL_L_VWM
600 *VIL_L_UTY: CHAIN MERGE VIL_DIR$+"VIL_UTY.BAS",*VIL_L_END,ALL,DELETE *VIL_L_UTY
610 *VIL_L_END ' VIL リンク終了
620 '
630 GOSUB *VIL_ERR_ON
640 GOSUB *VIL_DEFFN:GOTO *VIL_INITEND
650 '
660 *VIL_ERR_ON:ON ERROR GOTO *VIL_ERR:RETURN
670 *VIL_ERR:VIL_E=ERR:RESUME NEXT
680 '
690 *VIL_DEFFN
700 ' S$:文字列に変換 SS$:左にスペースを詰める S0$:左に0を詰める
710 ' P :正の整数 I :整数 R :実数
720 DEF FNVIL_P2S$(X) =MID$(STR$(X),2)
730 DEF FNVIL_P2SS$(X,Y)=RIGHT$(" "+STR$(X),Y)
740 DEF FNVIL_P2S0$(X,Y)=RIGHT$("0000000000"+MID$(STR$(X),2),Y)
750 DEF FNVIL_I2S$(X) =MID$(STR$(X),1-(X>=0))
760 DEF FNVIL_I2SS$(X,Y)=RIGHT$(" "+STR$(X),Y)
770 '符号1桁(+-) + 00… + 数値
780 DEF FNVIL_I2S0$(X,Y) =MID$("+-",1-(X<0),1) +RIGHT$("0000000000"+MID$(STR$(ABS(X)),2),Y-1)
790 DEF FNVIL_R2S$(X) =MID$(STR$(X),1-(X>=0))
800 DEF FNVIL_R2SS$(X,Y,Z)=RIGHT$(" "+STR$(FIX(X)),Y)+"." +MID$("0000000000"+STR$(X)+"0000000000" ,INSTR("0000000000"+STR$(X),".")+1,Z)
810 DEF FNVIL_R2S0$(X,Y,Z)=MID$("+-",1-(X<0),1)+RIGHT$("0000000000" +MID$(STR$(FIX(ABS(X))),2),Y-1)+MID$("0000000000"+STR$(X)+"0000000000" ,INSTR("0000000000"+STR$(X),".")+1,Z)
820 RETURN
830 '
840 *VIL_INITEND
850 '-------------------- VIL組み込み終了 --------------------
10000 '<<<<<<<<<<<<<<<<<<<< MOUSE CURSOR EDITOR >>>>>>>>>>>>>>>>>>>>
10040 PLAY OFF
10045 'ON ERROR GOTO 0'***
10220 '<<<<<<<<<<<<<<<<<<<< VIL INITIALIZE >>>>>>>>>>>>>>>>>>>>
10230 '
10240 GOSUB *VIL_BEEP_INITM
10250 '
10260 VIL_W0=1024*500\2 '画面退避(最大ウィンドウ総面積)
10270 VIL_W1=20 '最大ウィンドウ番号
10280 GOSUB *VIL_WIN_INITM
10290 '
10300 VIL_W0=110 '最大メニュー番号
10310 VIL_W1=256 '最大ボックス数
10320 GOSUB *VIL_MSEL_INITM
10330 GOSUB *VIL_INP_INITM
10340 '
10350 VIL_W0= 99 '最大ウィンドウ通し番号
10360 VIL_W1=128 'ウィンドウ枠色初期設定 (G)
10370 VIL_W2=128 ' (R)
10380 VIL_W3=128 ' (B)
10390 VIL_W4= 8 'ウィンドウ背景色用パレット番号
10400 VIL_W5= 0 'ウィンドウ背景色初期設定(G)
10410 VIL_W6= 0 ' (R)
10420 VIL_W7= 0 ' (B)
10430 GOSUB *VIL_VWM_INITM
10440 GOSUB *VIL_SEL_INITM
10450 '
10460 VIL_W0=160:VIL_W1=80
10470 GOSUB *VIL_SYSCNF_INITM
10480 '
10490 VIL_W0=160+32:VIL_W1=80+32 '色設定ウィンドウ左上隅座標
10492 VIL_W2=160+64:VIL_W3=80+64 'パレット設定ウィンドウ左上隅座標
10494 VIL_W4=-1 '表示輝度(高輝度)
10496 VIL_W5=128 'ウィンドウ枠色初期設定 (G)
10498 VIL_W6=128 'ウィンドウ枠色初期設定 (R)
10500 VIL_W7=128 'ウィンドウ枠色初期設定 (B)
10502 GOSUB *VIL_COLCNF_INITM
10504 '
10506 VIL_W0=160+32:VIL_W1=80+32 'BGM設定ウィンドウ左上隅座標
10508 GOSUB *VIL_BGM_INITM
10510 '
10512 VIL_W0=160+64:VIL_W1=80+64 'BGM-FMウィンドウ左上隅座標
10514 VIL_W2=160+96:VIL_W3=80+16 '曲選択ウィンドウ左上隅座標
10516 VIL_W4=63 'MMLデータ数
10518 VIL_W5=16 '曲データ数
10520 GOSUB *VIL_BGMFM_INITM
10522 '
10524 VIL_W0=160+64:VIL_W1=80+64 'BGM-CDウィンドウ左上隅座標
10526 GOSUB *VIL_BGMCD_INITM
10528 '
10530 '--------------------------------------------------------------------
10532 *VIL_MCEDIT
10534 ' マウスカーソル・エディタ
10540 '
10550 VIL_FNAM$=""
10551 VIL_WX=80:VIL_WY=80
10552 CLS
10553 '
10560 'FNAM$ :ファイル名
10570 '
10580 DIM VIL_PAT%(15,15) '0:BLACK,1:WHITE,2:BACK
10590 PALETTE 7,[255,255,255]
10600 PALETTE 6,[160,160,160]
10610 VIL_MCAND$="":VIL_MCDOT$=""
10620 VIL_MCX=-1:VIL_MCY=-1
10630 'SETUP SCREEN
10640 VIL_WW=VIL_WX+343:VIL_WZ=VIL_WY+290
10650 VIL_VWT$="ALGERNON":VIL_VWAT=4:VIL_VWN=0
10660 GOSUB *VIL_VWOPEN
10670 SYMBOL(8,2),"MOUSE CURSOR EDITOR",1,1,4,,,3
10680 LINE(8,24)-(264,280),PSET,%6,B
10690 LINE(272,24)-(289,41),PSET,%6,B
10700 LINE(300,24)-(339,43),PSET,7,BF
10710 GOSUB 11480
10720 RESTORE 12870
10730 FOR VIL_I=1 TO 9
10740 READ VIL_W0$
10750 SYMBOL(276,VIL_I*22+32),FNVIL_P2S$(VIL_I)+" "+VIL_W0$,1,1,7
10760 LINE(274,VIL_I*22+30)-(333,VIL_I*22+47),PSET,%6,B
10770 NEXT
10780 GOSUB 12820
10790 VIL_BCE=0
10800 'MAIN MENU
10810 LINE(268,46)-(339,251),PSET,7,B
10820 VIL_X=272:VIL_Y=50:VIL_W=335:VIL_Z=71
10830 VIL_YL=22:VIL_XN=1:VIL_YN=9:VIL_C=15:VIL_MN=80
10840 GOSUB *VIL_MSEL
10850 LINE(268,46)-(339,251),PSET,%8,B
10860 GOSUB 12760
10870 IF VIL_KN>0 THEN
10880 ON VIL_KN GOSUB 10920,10920,10920,11130,11350,11640,11730,11730,*VIL_SYSCNF
10890 ENDIF
10900 GOTO 10810
10910 'EDIT
10920 VIL_W5=VIL_KN
10930 VIL_X=8:VIL_Y=24:VIL_W=24:VIL_Z=40
10940 VIL_XL=16:VIL_YL=16:VIL_XN=9:VIL_YN=1:VIL_BCE=0
10950 GOSUB *VIL_BCMAKE
10960 VIL_XN=16:VIL_YN=16:VIL_C=12:VIL_MN=81
10970 GOSUB *VIL_MSELIN
10980 IF VIL_KN>0 THEN
10990 VIL_X=(VIL_KN-1) MOD 16:VIL_Y=(VIL_KN-1)\16
11000 VIL_C=-(VIL_W5=2)*15-(VIL_W5=3)*9
11010 LINE(VIL_X*16+ 9,VIL_Y*16+25) -(VIL_X*16+23,VIL_Y*16+39),PSET,%VIL_C,BF
11020 PSET(VIL_X+273,VIL_Y+25),%VIL_C
11030 PSET(VIL_X+302,VIL_Y+26),%(-(VIL_C<>0)*15)
11040 VIL_PAT%(VIL_X,VIL_Y)=VIL_W5-1
11050 ELSE IF VIL_KN=0 THEN
11060 VIL_C=12:GOSUB *VIL_BC
11070 RETURN
11080 ELSE
11090 GOSUB 12760
11100 ENDIF
11110 GOTO 10960
11120 'POINT
11130 VIL_X=8:VIL_Y=24:VIL_W=24:VIL_Z=40
11140 VIL_XL=16:VIL_YL=16:VIL_XN=9:VIL_YN=1:VIL_BCE=0
11150 GOSUB *VIL_BCMAKE
11160 VIL_XN=16:VIL_YN=16:VIL_C=12:VIL_MN=81
11170 GOSUB *VIL_MSELIN
11180 IF VIL_KN>0 THEN
11190 IF VIL_MCX>=0 THEN
11200 VIL_C=-(VIL_PAT%(VIL_MCX,VIL_MCY)=1)*15 -(VIL_PAT%(VIL_MCX,VIL_MCY)=2)*9
11210 LINE(VIL_MCX*16+ 9,VIL_MCY*16+25) -(VIL_MCX*16+23,VIL_MCY*16+39),PSET,%VIL_C,BF
11220 ENDIF
11230 VIL_MCX=(VIL_KN-1) MOD 16:VIL_MCY=(VIL_KN-1)\16
11240 LINE(VIL_MCX*16+12,VIL_MCY*16+28) -(VIL_MCX*16+20,VIL_MCY*16+36),PSET,2,BF
11250 VIL_C=12:GOSUB *VIL_BC
11260 RETURN
11270 ELSE IF VIL_KN=0 THEN
11280 VIL_C=12:GOSUB *VIL_BC
11290 RETURN
11300 ELSE
11310 GOSUB 12760
11320 ENDIF
11330 GOTO 11130
11340 'CLEAR
11350 VIL_WX=VIL_WX+48:VIL_WY=VIL_WY+160:VIL_WW=VIL_WX+175:VIL_WZ=VIL_WY+55
11360 VIL_VWT$="CLEAR":VIL_VWAT=0
11370 GOSUB *VIL_VWOPEN
11380 SYMBOL(8,8),"データをクリアします",1,1,7
11390 VIL_X=44:VIL_Y=28
11400 GOSUB *VIL_SEL_DO
11410 IF VIL_KN<1 THEN
11420 GOSUB 12760
11430 GOTO 11390
11440 ENDIF
11450 GOSUB *VIL_VWCLOSE
11460 IF VIL_KN=2 THEN RETURN
11470 '
11480 FOR VIL_Y=0 TO 15
11490 FOR VIL_X=0 TO 15
11500 VIL_PAT%(VIL_X,VIL_Y)=2
11510 NEXT
11520 NEXT
11530 LINE(9,25)-(263,279),PSET,1,BF
11540 FOR VIL_X=24 TO 248 STEP 16
11550 LINE(VIL_X,24)-(VIL_X,280),PSET,%6
11560 NEXT
11570 FOR VIL_Y=40 TO 264 STEP 16
11580 LINE(8,VIL_Y)-(264,VIL_Y),PSET,%6
11590 NEXT
11600 LINE(273,25)-(288,40),PSET,1,BF
11610 LINE(300,24)-(339,43),PSET,7,BF
11620 RETURN
11630 'SET
11640 GOSUB 12610
11650 VIL_W0$="":VIL_W1$=""
11660 FOR VIL_I=1 TO 63 STEP 2
11670 VIL_W0$=VIL_W0$+CHR$(VAL("&H"+MID$(VIL_MCAND$,VIL_I,2)))
11680 VIL_W1$=VIL_W1$+CHR$(VAL("&H"+MID$(VIL_MCDOT$,VIL_I,2)))
11690 NEXT
11700 MOUSE 2,VIL_W0$,VIL_W1$,-VIL_MCX*(VIL_MCX>=0),-VIL_MCY*(VIL_MCX>=0)
11710 RETURN
11720 'LOAD & SAVE
11730 VIL_W5=(VIL_KN=8) '0:LOAD / -1:SAVE
11740 VIL_WX=VIL_WX+48:VIL_WY=VIL_WY+160:VIL_WW=VIL_WX+351:VIL_WZ=VIL_WY+31
11750 VIL_VWT$=MID$("LOADSAVE",1-VIL_W5*4,4)+" NAME":VIL_VWAT=0
11760 GOSUB *VIL_VWOPEN
11770 SYMBOL(8,8),KMID$("ロードセーブ",1-VIL_W5*3,3)+"名:",1,1,7
11780 VIL_A$=VIL_FNAM$
11790 VIL_X=80:VIL_Y=8:VIL_C=15:VIL_CB=8:VIL_L=32
11800 GOSUB *VIL_INPSTR
11810 IF VIL_KN=-2 OR (VIL_KN=-1 AND VIL_MW=-1) THEN
11820 VIL_W0$=VIL_A$
11830 GOSUB 12760
11840 IF VIL_VWMR=8 THEN RETURN
11850 VIL_A$=VIL_W0$
11860 GOTO 11790
11870 ELSE IF VIL_KN=0 THEN
11880 GOSUB *VIL_VWCLOSE
11890 ELSE
11900 VIL_FNAM$=VIL_A$
11910 VIL_WX=VIL_WX+48:VIL_WY=VIL_WY+48
11920 VIL_WW=VIL_WX+175:VIL_WZ=VIL_WY+55
11930 VIL_VWT$=MID$("LOADSAVE",1-VIL_W5*4,4)+" SURE":VIL_VWAT=0
11940 GOSUB *VIL_VWOPEN
11950 SYMBOL(8,8),"データを"+KMID$("ロードセーブ",1-VIL_W5*3,3)+"します", 1,1,7
11960 VIL_X=44:VIL_Y=28
11970 GOSUB *VIL_SEL_DO
11980 IF VIL_KN<1 THEN
11990 GOSUB 12760
12000 GOTO 11960
12010 ENDIF
12020 GOSUB *VIL_VWCLOSE:GOSUB *VIL_VWCLOSE
12030 IF VIL_KN=2 THEN RETURN
12040 IF VIL_W5=0 THEN 'LOAD
12050 VIL_E=0
12060 OPEN "I",#1,VIL_FNAM$
12070 IF VIL_E=63 THEN
12080 STOP
12090 ENDIF
12100 LINE INPUT #1,VIL_W0$:VIL_MCX=VAL(MID$(VIL_W0$,15))
12110 LINE INPUT #1,VIL_W0$:VIL_MCY=VAL(MID$(VIL_W0$,15))
12120 LINE INPUT #1,VIL_W0$':VIL_MCAND$=MID$(VIL_W0$,19,64)
12121 VIL_W0=0:VIL_MCAND$=""
12122 FOR VIL_I=0 TO 31
12123 VIL_W0=INSTR(VIL_W0+1,VIL_W0$,"&H")+2
12124 VIL_MCAND$=VIL_MCAND$+MID$(VIL_W0$,VIL_W0,2)
12125 NEXT
12128 '
12130 LINE INPUT #1,VIL_W0$':VIL_MCDOT$=MID$(VIL_W0$,19,64)
12131 VIL_W0=0:VIL_MCDOT$=""
12132 FOR VIL_I=0 TO 31
12133 VIL_W0=INSTR(VIL_W0+1,VIL_W0$,"&H")+2
12134 VIL_MCDOT$=VIL_MCDOT$+MID$(VIL_W0$,VIL_W0,2)
12135 NEXT
12138 '
12140 FOR VIL_Y=0 TO 15
12150 VIL_W0=32768
12160 VIL_W1=VAL("&H"+MID$(VIL_MCAND$,VIL_Y*4+1,4))
12170 VIL_W2=VAL("&H"+MID$(VIL_MCDOT$,VIL_Y*4+1,4))
12180 FOR VIL_X=0 TO 15
12190 VIL_PAT%(VIL_X,VIL_Y)=-((VIL_W1 AND VIL_W0)>0)*2 -((VIL_W2 AND VIL_W0)>0)
12200 VIL_C=-(VIL_PAT%(VIL_X,VIL_Y)=1)*15 -(VIL_PAT%(VIL_X,VIL_Y)=2)*9
12210 LINE(VIL_X*16+ 9,VIL_Y*16+25) -(VIL_X*16+23,VIL_Y*16+39),PSET,%VIL_C,BF
12220 PSET(VIL_X+273,VIL_Y+25),%VIL_C
12230 PSET(VIL_X+302,VIL_Y+26),%(-(VIL_C<>0)*15)
12240 VIL_W0=VIL_W0\2
12250 NEXT
12260 NEXT
12270 IF VIL_MCX>=0 THEN
12280 LINE(VIL_MCX*16+12,VIL_MCY*16+28) -(VIL_MCX*16+20,VIL_MCY*16+36),PSET,2,BF
12290 ENDIF
12300 CLOSE #1
12310 ELSE 'SAVE
12320 GOSUB 12610
12330 VIL_E=0
12340 OPEN "O",#1,VIL_FNAM$
12350 IF VIL_E=64 THEN
12360 VIL_WX=VIL_WX+48:VIL_WY=VIL_WY+160
12370 VIL_WW=VIL_WX+287:VIL_WZ=VIL_WY+55
12380 VIL_VWT$="SURE":VIL_VWAT=0
12390 GOSUB *VIL_VWOPEN
12400 SYMBOL(8,8),"指定のファイルは既に存在しています",1,1,7
12410 VIL_X=100:VIL_Y=28
12420 GOSUB *VIL_SEL_DO
12430 IF VIL_KN<1 THEN
12440 GOSUB 12760
12450 GOTO 12410
12460 ENDIF
12470 GOSUB *VIL_VWCLOSE
12480 IF VIL_KN=2 THEN GOSUB *VIL_VWCLOSE:RETURN
12490 KILL VIL_FNAM$:GOTO 12330
12500 ENDIF
12510 PRINT #1,"60000 VIL_MCX="+FNVIL_P2S$(VIL_MCX)
12520 PRINT #1,"60010 VIL_MCY="+FNVIL_P2S$(VIL_MCY)
12521 '
12522 VIL_W0$="60020 VIL_MCA$=CHR$(&H"+MID$(VIL_MCAND$,1,2)
12523 FOR VIL_I=0 TO 30
12524 VIL_W0$=VIL_W0$+",&H"+MID$(VIL_MCAND$,VIL_I*2+3,2)
12525 NEXT
12530 PRINT #1,VIL_W0$+")"
12541 '
12542 VIL_W0$="60030 VIL_MCD$=CHR$(&H"+MID$(VIL_MCDOT$,1,2)
12543 FOR VIL_I=0 TO 30
12544 VIL_W0$=VIL_W0$+",&H"+MID$(VIL_MCDOT$,VIL_I*2+3,2)
12545 NEXT
12546 PRINT #1,VIL_W0$+")"
12550 CLOSE #1
12560 ENDIF
12570 ENDIF
12580 RETURN
12590 '
12600 'MAKE STRING
12610 VIL_MCAND$="":VIL_MCDOT$=""
12620 FOR VIL_Y=0 TO 15
12631 FOR VIL_I=0 TO 1
12635 VIL_W0=0:VIL_W1=0
12640 FOR VIL_X=0 TO 7
12650 VIL_W0=(VIL_W0-(VIL_PAT%(VIL_I*8+VIL_X,VIL_Y)=2))*2
12660 VIL_W1=(VIL_W1-(VIL_PAT%(VIL_I*8+VIL_X,VIL_Y)=1))*2
12670 'PRINT -(VIL_PAT%(VIL_I*8+VIL_X,VIL_Y)=2);' PRINT VIL_W0;VIL_W1
12680 NEXT
12682 'PRINT HEX$(VIL_W0\2)'PRINT HEX$(VIL_W0);
12690 VIL_MCAND$=VIL_MCAND$+RIGHT$("00"+HEX$(VIL_W0\2),2)
12700 VIL_MCDOT$=VIL_MCDOT$+RIGHT$("00"+HEX$(VIL_W1\2),2)
12710 ' PRINT VIL_MCAND$;"|";VIL_MCDOT$:A$=INPUT$(1)
12715 NEXT
12720 NEXT
12730 RETURN
12740 '
12750 'CHECK VWM AND VST
12760 GOSUB *VIL_VWMCHECK
12770 IF VIL_VWMR=4 AND VIL_WT$="ALGERNON" THEN GOSUB 12820
12780 'GOSUB *VIL_STCHECK
12790 RETURN
12800 '
12810 'MAKE BOX FOR PATTERN EDIT
12820 VIL_X=8:VIL_Y=24:VIL_W=24:VIL_Z=40
12830 VIL_XL=16:VIL_YL=16:VIL_XN=16:VIL_YN=16
12840 GOSUB *VIL_BCMAKE
12850 RETURN
12860 '
12870 DATA "BLACK","WHITE","BACK","POINT","CLEAR","SET","LOAD","SAVE","SYS"
12880 'SCALE--------2---------3---------4---------5---------6---------7-----*--*8